﻿using System;

namespace Adaptive.Foundation.Tokenizers
{
    /// <summary>
    /// Provides a list of the known characters used for character-based tokenizing.
    /// </summary>
    public enum CharacterTokenValues
    {
        /// <summary>
        /// Indicates no character type.
        /// </summary>
        None = 0,
        /// <summary>
        /// Indicates a dash ( - ) character.
        /// </summary>
        Dash,
        /// <summary>
        /// Indicates a comma ( , ) character.
        /// </summary>
        Comma,
        /// <summary>
        /// Indicates a semi-colon ( ; ) character.
        /// </summary>
        SemiColon,
        /// <summary>
        /// Indicates a colon ( : ) character.
        /// </summary>
        Colon,
        /// <summary>
        /// Indicates a slash ( / ) character.
        /// </summary>
        Slash,
        /// <summary>
        /// Indicates a backslash ( \ ) character.
        /// </summary>
        Backslash,
        /// <summary>
        /// Indicates a period or dot ( . ) character.
        /// </summary>
        Period,
        /// <summary>
        /// Indicates a numeric digit ( 0 - 9 ) character.
        /// </summary>
        NumericDigit,
        /// <summary>
        /// Indicates an open parenthesis ( character.
        /// </summary>
        OpenParenthesis,
        /// <summary>
        /// Indicates an open brace ( { )character.
        /// </summary>
        OpenBrace,
        /// <summary>
        /// Indicates an open bracket ( [ ) character.
        /// </summary>
        OpenBracket,
        /// <summary>
        /// Indicates an open angle bracket ( &lt; ) character.
        /// </summary>
        OpenAngle,
        /// <summary>
        /// Indicates a close angle bracket ( > ) character.
        /// </summary>
        CloseAngle,
        /// <summary>
        /// Indicates a close bracket ( ] ) character.
        /// </summary>
        CloseBracket,
        /// <summary>
        /// Indicates a close brace ( } ) character.
        /// </summary>
        CloseBrace,
        /// <summary>
        /// Indicates a closef parenthesis ) character.
        /// </summary>
        CloseParenthesis,
        /// <summary>
        /// Indicates a single quote ( ' ) character.
        /// </summary>
        SingleQuote,
        /// <summary>
        /// Indicates a double quote ( " ) character.
        /// </summary>
        DoubleQuote,
        /// <summary>
        /// Indicates a question mark ( ? ) character.
        /// </summary>
        QuestionMark,
        /// <summary>
        /// Indicates an exclamation mark ( ! ) character.
        /// </summary>
        ExclamationMark,
        /// <summary>
        /// Indicates a tilde ( ~ ) character.
        /// </summary>
        Tilde,
        /// <summary>
        /// Indicates an at sign ( @ ) character.
        /// </summary>
        AtSign,
        /// <summary>
        /// Indicates a number sign or pound ( # ) character.
        /// </summary>
        NumberSign,
        /// <summary>
        /// Indicates a dollar sign ( $ ) character.
        /// </summary>
        DollarSign,
        /// <summary>
        /// Indicates a percent sign ( % ) character.
        /// </summary>
        PercentSign,
        /// <summary>
        /// Indicates a caret ( ^ ) character.
        /// </summary>
        Caret,
        /// <summary>
        /// Indicates an ampersand ( &amp;) character.
        /// </summary>
        Ampersand,
        /// <summary>
        /// Indicates an asterisk ( * ) character.
        /// </summary>
        Asterisk,
        /// <summary>
        /// Indicates a plus sign ( + ) character.
        /// </summary>
        AdditionSign,
        /// <summary>
        /// Indicates an equals sign ( = ) character.
        /// </summary>
        EqualsSign,
        /// <summary>
        /// Indicates a carriage-return character (ASCII 13). 
        /// </summary>
        CarriageReturn,
        /// <summary>
        /// Indicates a linefeed character (ASCII 10). 
        /// </summary>
        Linefeed,
        /// <summary>
        /// Indicates a tab character (ASCII 9). 
        /// </summary>
        Tab,
        /// <summary>
        /// Indicates a space character (ASCII 32). 
        /// </summary>
        Space,
        /// <summary>
        /// Indicates a backspace character (ASCII 8). 
        /// </summary>
        Backspace,
        /// <summary>
        /// Indicates a bell / beep character (ASCII 7). 
        /// </summary>
        Bell,
        /// <summary>
        /// Indicates a null character (ASCII 0). 
        /// </summary>
        NullCharacter,
        /// <summary>
        /// Indicates a high-order ASCII character (ASCII numbers over 127). 
        /// </summary>
        HighOrderCharacter,
        /// <summary>
        /// Indicates the highest ASCII character (ASCII 255). 
        /// </summary>
        HighOrderMaxAscii,
        /// <summary>
        /// Indicates an otherwise unspecified character.
        /// </summary>
        Undefined
      }
}